ソースのルートディレクトリを設定する

上述のとおり、一般にコードは多くのプロジェクト、サブプロジェクト、コンポーネントおよび/または、モジュールから構成されます。 また、それぞれのエンティティをビルドするために、インクルードディレクトリなど別のエンティティからの情報が必要な場合もあります。

Perforce QACのプロジェクトは移植できるように設計されています。 例えば、あるマシンからプロジェクトをバージョン管理システムへチェックインし、別のマシン上でそのプロジェクトを チェックアウトし、解析することができます。 しかし、この操作を実現するためには、プロジェクトがどこへチェックアウトまたは移動されようと、サードパーティ製ソフトウェアやプロジェクトのインクルードディレクトリなど、プロジェクトが依存する場所を特定できなければなりません。

ビルド依存ディレクトリを絶対パスとして保持するソフトウェアもあります。 この場合、プロジェクトをビルドするためには、使用するすべてのマシンにおいて、絶対パスが同じ場所になるようにソフトウェアをインストールしなければなりません。 また、ビルド依存ディレクトリを現在のプロジェクトからの相対パスとして保持するソフトウェアもあります。 多くのソフトウェアは、ビルド依存ディレクトリを絶対パスと相対パスの両方を組み合わせて持ちます。

Perforce QACでは、ソースファイルに複数のルートディレクトリを設定することができます。 ほとんどの場合、単一のルートディレクトリで十分ですが、例えば、サードパーティのコードを使用する場合などに、複数のルートディレクトリが必要な場合があります。

デフォルトでは、ソースのルートディレクトリは、プロジェクトの作成時に指定したプロジェクトのルートディレクトリと同じになるように設定されます。 ソースのルートディレクトリを変更する、またはディレクトリを追加するには、次の場所に移動します。

[プロジェクト] > [プロジェクトプロパティ] > [プロジェクト]タブ >ルートディレクトリ

PROJECT_ROOT設定は、Perforce QACプロジェクトの場所情報を保持しています。 これを変更することはできません。 SOURCE_ROOT設定は、最初PROJECT_ROOT値に設定されていますが、独自のファイル構造に適した場所に変更することができます。 場所を変更するには、[値]列のセルをダブルクリックしてテキストを編集し、[保存]をクリックして設定を保存します。

相対インクルードパス(例:-i .\aaa\inc)をCCTファイルに追加すると、PROJECT_ROOTはその相対パスの開始ディレクトリになります。 この場合は、-i PROJECT_ROOT\aaa\incが検索されます。

複数のソースルートディレクトリが必要な場合は、「追加」ボタンをクリックしてください。 ダイアログボックスが表示され、名前とディレクトリを設定します。(ディレクトリは直接入力するか、フォルダアイコンをクリックしてフォルダを選択するかのどちらでも設定できます。) ${ }で名前を囲むすることにより、他のルートディレクトリを参照することができます。 そしてパスも追加することができます。例:${PROJECT_ROOT}\src\calcs プロジェクトルートから2レベル下の場所を参照。

プロジェクトにファイルを追加するには、メイン画面で必要なプロジェクトのコンテキストメニューから[ファイルを追加]を選択します。

Perforce QACはソースルートを起点にした最適なファイルの場所を選びます。 一致するパスがない場合は、ファイルへの絶対パスが使用されます。

これは、ユーザ間でプロジェクトの定義をコピーする時などに役立ちます。 多くの場合、ユーザAはユーザB へ、プロジェクトの定義をコピーする前に、ソースファイルのリストをプロジェクトに既 に設定しています。この二人のユーザが同じ場所にサードパーティのコードを保存し、ソースは別 の場所であるプロジェクト本体に保存しているとします。 その場合、ユーザBは、ソースのルートだけをローカルマシン上の場所に合わせて調整することができます。 これでプロジェクトを使用する準備ができました。 ユーザAに追加されたファイルは、ローカルで見つけることができるので、ユーザBがプロジェクトを再同期する必要はありません。

さらにユーザBによって行われた変更は、通常のプロジェクト定義ファイル「prqaproject.xml」には設定されず、ユーザ固有のファイル「prqa\qa-framework-app.xml」に格納されます。 プロジェクト固有ルート、ユーザ固有のルートは、表の下にあるラジオボタンを使用して編集することができます。 これにより、オリジナルの「prqaproject.xml」はプロジェクトの全てのユーザに対して引き続き有効であり、ユーザごとの違いを気にせずソース管理にチェックインすることができます。 (新たに追加されたルートは「prqaproject.xml」に追加されるため、全てのユーザが利用できます。)

異なるソースルートが指定されるたびに、Perforce QACは既存のソースファイルが既存のルートではなく、新しいルートに一致するかどうかを確認します。 その場合 は、ファイルが新しいルート下に置かれます。 つまり、表示されるパスは、古いルートではなく、新しいルートからのパスになります。 これにより、いくつかの相対パスの短縮に役立ちます。ディレク トリ階層の下位レベルで新しいルートを設定することにより、新たなルートに切り替えられたファ イルは短い相対パスを持つことになります。

例えば、サンプルプロジェクト「sample_cgicc_diff」は、SOURCE_ROOT: src, demoおよびdiff配下の三つの独立したモジュールです。

ファイルCgiUtilsは、相対パスSOURCE_ROOT\src\cgicc\CgiUtils.cppを持ちます。 新しいルート CGICC_ROOT が、以下のように追加された場合:

CGICC_ROOT = ${SOURCE_ROOT}\src\cgicc

プロジェクトプロパティを閉じると、ファイルが再割り当てされます。 以下の全てのファイルは SOURCE_ROOT\src\cgicc 配下でしたが、現在はCGICC_ROOT.の配下になります。

既存のルートの場所を変更するだけでは、相対パスを短くすることはできません。 上記の例では、CgiUtils.cppには最初に相対パスSOURCE_ROOT\src\cgiccがあり、絶対パス

c:\dev\sample_cgicc_diff\src\cgicc.

に変換される可能性があります。もしSOURCE_ROOT自体が、c:\dev\sample_cgicc_diff\srcに変更された場合、相対パスは変更せず、以下の間違った絶対パスを供給します。

c:\dev\ sample_cgicc_diff\src\src\cgicc

既存の相対パスを保持することは、ユーザBが、ユーザAによって提供されるパスを調整する必要がある場合に、ファイルを見つけるうえで必要です。